<?php

class Usuarios_IndexController extends Zend_Controller_Action {
	
	private $nav;
		
	public function init() {
		$this->nav = new App_Util_Navegacion();
		if ($this->getRequest ()->getParam('action')!="lista"){
			$this->nav->agregar_navegacion("Lista de usuarios", "/usuarios/index/lista","Lista de usuarios");
			$this->nav->agregar_navegacion("Información del usuario", "#","Información del usuario");
		}else
			$this->nav->agregar_navegacion("Lista de usuarios", "#","Lista de usuarios");
		$this->view->nav = $this->nav;
	}
	
	public function indexAction() {
		$this->_forward("lista");
	}
	
	public function listajsonAction() {
	    //Zend_Registry::get("logger")->info(Zend_Debug::dump($this->getAllParams(),"params",false));
	    $draw = $this->getParam("draw");
	    $start = $this->getParam("start");
	    $length = $this->getParam("length");
	    
	    $json = array("draw"=>$draw,
    			"recordsTotal"=>1,
	            "recordsFiltered"=>1,
	            "data"=>array(array("vcardenas", "Victor","Av Caracas","Desarrollo",null,null)));
	    
	    $this->_helper->json($json);
	}
	
	public function listaAction() {
		$dialogo = new App_Util_Dialog ( );
		$dialogo->autoOpen ( "false" );
		$dialogo->modal ( "true" );
		$dialogo->width ( 400 );
		$pagina = $this->view->baseUrl () . "/usuarios/index/eliminar";
		$dialogo->buttons ( Array ("Cerrar ventana" => "$(this).dialog(\"close\")" ) );
		$dialogo->agregar_Dlg ( "Eliminar usuario", $pagina );
		$this->view->dialogos = $dialogo;
		
		$usuarios = new Usuarios_Model_Usuarios ( );
		
		$codsede ="";
		if (App_User::getCodigoPadreRol()==Roles_Model_Roles::CODPADRE_SEDE &&  App_User::getCodigoSede()){
		    $codsede = App_User::getCodigoSede();
		}
		
		$buscar = $this->_getParam("buscar");
		$datos_usuarios = $usuarios->getPaginatorAdapterFetchAll ($codsede,$buscar);
		$datos_usuarios = $usuarios->traerRolesUsuarios($datos_usuarios);

	    // obtenemos la página actual
	    $page = $this->_getParam('page', 1);
	    // número de registros a mostrar por página
	    $registros_pagina = 25;
	    // número máximo de páginas a mostrar en el paginador
	    $rango_paginas = 15;
		
	    $paginador = Zend_Paginator::factory($datos_usuarios);
	    $paginador->setItemCountPerPage($registros_pagina)
	              ->setCurrentPageNumber($page)
	              ->setPageRange($rango_paginas);
	    $this->view->datos = $paginador;
		
	}
	
	public function eliminarAction() {
		$this->_helper->layout->disableLayout ();
		$this->view->title = "Gestor de usuarios";
		/* @var $form Usuarios_Form_Eliminar */
		$form = new Usuarios_Form_Eliminar ( );
		$form->setAction ( "/cna/usuarios/index/eliminar" );
		$usuarios = new Usuarios_Model_Usuarios ( );
		if ($this->getRequest ()->isPost ()) {
			$del = $this->getRequest ()->getPost ( 'btnSubmit' );
			if ($del == 'Eliminar') {
				$codusuario = $this->getRequest ()->getPost ( 'codusuario' );
				$usuarios->eliminar ( $codusuario );
				$this->view->mensaje = "El registro se eliminó correctamente.";
			}
			$this->_redirect ( '/usuarios/index/lista' );
		} else {
			$codusuario = $this->_getParam ( 'codusuario', 0 );
			if ($codusuario) {
				$datos = $usuarios->cargarDatos ( $codusuario );
				$form->populate ( $datos [0] );
			}
		}
		$this->view->form = $form;
	}
	
	public function ingresarAction() {
    	$sesionUsuario = new Zend_Session_Namespace("USUARIOS");
    	$sesionUsuario->codusuario = $this->_getParam("codusuario");
    	$sesionUsuario->editarmiperfil = false;
    	$editarmiperfil = $this->_getParam("editarmiperfil");
    	
    	if (!empty($editarmiperfil)){
    	    $sesionUsuario->editarmiperfil = true;
    	}
    	$this->_helper->redirector("basica", "detalle");
    }

	public function ingresarinformacionparAction() {
    	$sesionUsuario = new Zend_Session_Namespace("USUARIOS");
    	$sesionUsuario->codusuario = $this->_getParam("codusuario");
    	$this->_helper->redirector("index", "informacionpar");
    }
    
    
	public function cambiarestadoAction() {
		$usuarios = new Usuarios_Model_Usuarios ( );
		$form = new Usuarios_Form_CambiarEstado();
		
		if($this->getRequest()->isGet()) {
			$codusuario = $this->_getParam("codusuario");
		}else{
			$codusuario = $this->getRequest ()->getPost ( 'codusuario' );
		}
		
		if ($this->getRequest()->isPost() && $form->isValid($this->getRequest()->getPost())) {
			try {
				$datos = $form->getValues ();
				$datos["codusuariocrea"]= Zend_Auth::getInstance()->getIdentity()->codusuario;
				$datos["estado"] = ($datos["estado"]==1)?0:1;
				$usuarios->cambiarestado($datos);
				$datos_usuario= array("codusuario"=>$codusuario,"estado"=>$datos["estado"]);
				$usuarios->guardarUsuario($datos_usuario);
				$this->view->priorityMessenger("Los datos se han guardado correctamente", "success");
			} catch (Exception $e) {
				$this->view->priorityMessenger($e->getMessage(), "error");
			}
		}
		
		if (!empty( $codusuario )) {
			$this->infoUsuario = $usuarios->cargarDatos ( $codusuario );
			$this->view->infoUsuario = $this->infoUsuario;
//			$this->infoUsuario["estado"] = ($this->infoUsuario["estado"]==0)?1:0;
			$form->populate($this->infoUsuario);
		}
 		$this->view->datos = $usuarios->getInactivaciones($codusuario);
		$this->view->form = $form;
	}
	
}
